"""
非数字类型：
列表 list
元组 tuple
字典 dict
字符串 str
都是 sequence 容器""""

# 列表
"""
学习方法：
1、ipython3中 打list. tab键自动补全有那些函数
2、list.append__doc__ 看下帮助文档 或者 help(函数名)
3、iterable 可以迭代对象；object 一般字符串；index 索引；value 值 数字
4、pycharm Ctrl+Q 函数方法帮助文档
5、列表的应用场景是相同类型的变量集合存储
"""
list_new=list_new[:]  # 完全复制创建新列表，用于迭代
list_new[:4:2]  # 列表前四个原始切片并且step是2

data = ['ylc','zqq','yhc','zpp','yxm']
for i ,num in enumerate(data):  # 用enumerate迭代比用range优雅
    print(f'这是第{i}个')
    print(f'列表内容是{num}')
list_old + list_new  #生成新列表 需要用变量接下
list_old.extend(list_new) # 与相加差不多 扩展

my_lists = [[1,2,3,4],[4,3,2,1],[2,4,1,3]]
my_lists_sorted_by_index_3 = sorted(my_lists,key = lambda index_value:index_value[3])  # 第一种反复函数 新建一个新id 以每个元素第四个进行排序 
my_lists.sort(key = lambda index_value:index_value[3])  # 方法 在原数据id上改
my_lists_sorted_by_index_3
# 多特征排序
import operator
my_lists_sorted_by_index_3 = sorted(my_lists,key = operator.itemgetter(3,0))  # 对每个元素从3、0排序

# 元组
"""
特定场景：不可修改
1、函数参数与返回值
2、格式化字符串本质上是 元祖
3、列表转换让列表不可修改
"""
tuple(single_list)
list(single_tuple)

# 字符串str
# 字符串可以 + 、 *
# 字符串新格式化3.6后
print(f"{变量}字符串格式化")
print(f"10\t20")  # \t 制表符 Tab  \n 换行符 \r回车

# 字典dic
# 无序列表对物体属性的描述
xiaoming_dic = {"name" : "小明",
                    "age" : 18,
                    "gender" : True,
                    "weight" : 75.5}
# 删除字典
xiaoming_dic.pop("name")
# 合并字典
xiaoming_dic.updata(tem_dic)  # 如果两个字典都有age则更新
# 遍历字典
for i in xiaoming_dic:  # i 是自定的 key
#  字典最常用的是和列表一起，有序与无序

# list1、list2索引对应生成字典
aDic = dict(zip(list1,list2)

# 字典初始化设置工资3000
{}.formkeys(("ylc" , "zqq" , "yhc"),3000)


"""
公共方法：
1、内置函数：
    len() ; del ; max(item)如字典是key ; min(item)
2、切片：支持字符串、列表、元组
    char[::-1] 倒序
3、成员运算符：自动只能用在key中
    in ； not in
4、for - else
    for 变量只有完全遍历且没有被break打断 else才会执行
    
"""

# http://wiki.jikexueyuan.com/project/explore-python/Datatypes/list.html
